#include "FastICA.h"

CFastICA::CFastICA(int dimension, CFastICANeuron::ACTIVE_FUNCTION_TYPE activeType) :
	m_Dimension(dimension)
{
	for (int n = 0; n < dimension; n++)
	{
		this->m_Neurons.push_back(make_shared<CFastICANeuron>(dimension, activeType));
	}
}

Vector2 CFastICA::Execute(const Vector2 & Input)
{
	Vector2 Y(this->m_Dimension);

	for (int n = 0; n < this->m_Dimension; n++)
	{
		Y[n] = this->m_Neurons[n]->Execute(Input);
	}

	return Y;
}